/*
*Copyright 2021-2023 NERCIS
*
*Licensed under the Apache License, Version 2.0 (the "License");
*you may not use this file except in compliance with the License.
*You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
*Unless required by applicable law or agreed to in writing, software
*distributed under the License is distributed on an "AS IS" BASIS,
*WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
*See the License for the specific language governing permissions and
*limitations under the License.
*/

package cn.ac.nercis.pes.community.model.vo.evaluation;

import javafx.beans.property.SimpleObjectProperty;
import javafx.beans.property.SimpleStringProperty;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.time.LocalDate;

/**
 * 测评阶段信息修改视图模型
 * @author zpy
 * @version 1.0.0
 */
@Data
@Builder
@NoArgsConstructor
public class EvaluationStageVO {
    private final SimpleStringProperty systemId = new SimpleStringProperty();
    private final SimpleObjectProperty<LocalDate> preparationStartDate = new SimpleObjectProperty<>();
    private final SimpleObjectProperty<LocalDate> preparationEndDate = new SimpleObjectProperty<>();
    private final SimpleObjectProperty<LocalDate> compilationStartDate = new SimpleObjectProperty<>();
    private final SimpleObjectProperty<LocalDate> compilationEndDate = new SimpleObjectProperty<>();
    private final SimpleObjectProperty<LocalDate> evaluationStartDate = new SimpleObjectProperty<>();
    private final SimpleObjectProperty<LocalDate> evaluationEndDate = new SimpleObjectProperty<>();
    private final SimpleObjectProperty<LocalDate> analysisStartDate = new SimpleObjectProperty<>();
    private final SimpleObjectProperty<LocalDate> analysisEndDate = new SimpleObjectProperty<>();


    private final SimpleStringProperty projectStart = new SimpleStringProperty();
    private final SimpleStringProperty collectAnalyze = new SimpleStringProperty();
    private final SimpleStringProperty toolPrepare = new SimpleStringProperty();
    private final SimpleStringProperty projectStartCycle = new SimpleStringProperty();
    private final SimpleStringProperty collectAnalyzeCycle = new SimpleStringProperty();
    private final SimpleStringProperty toolPrepareCycle = new SimpleStringProperty();

    private final SimpleStringProperty assetDefine = new SimpleStringProperty();
    private final SimpleStringProperty targetDefine = new SimpleStringProperty();
    private final SimpleStringProperty contentDefine = new SimpleStringProperty();
    private final SimpleStringProperty checkPointDefine = new SimpleStringProperty();
    private final SimpleStringProperty schemeMake = new SimpleStringProperty();
    private final SimpleStringProperty assetDefineCycle = new SimpleStringProperty();
    private final SimpleStringProperty targetDefineCycle = new SimpleStringProperty();
    private final SimpleStringProperty checkPointCycle = new SimpleStringProperty();
    private final SimpleStringProperty contentDefineCycle = new SimpleStringProperty();
    private final SimpleStringProperty schemeMakeCycle = new SimpleStringProperty();

    private final SimpleStringProperty implementPrepare = new SimpleStringProperty();
    private final SimpleStringProperty sceneRecord = new SimpleStringProperty();
    private final SimpleStringProperty resultDefine = new SimpleStringProperty();
    private final SimpleStringProperty implementPrepareCycle = new SimpleStringProperty();
    private final SimpleStringProperty sceneRecordCycle = new SimpleStringProperty();
    private final SimpleStringProperty resultDefineCycle = new SimpleStringProperty();

    private final SimpleStringProperty unitEval = new SimpleStringProperty();
    private final SimpleStringProperty overallEval = new SimpleStringProperty();
    private final SimpleStringProperty quantifyEval = new SimpleStringProperty();
    private final SimpleStringProperty riskAnalyze = new SimpleStringProperty();
    private final SimpleStringProperty evalConclusion = new SimpleStringProperty();
    private final SimpleStringProperty secretReport = new SimpleStringProperty();
    private final SimpleStringProperty unitEvalCycle = new SimpleStringProperty();
    private final SimpleStringProperty overallEvalCycle = new SimpleStringProperty();
    private final SimpleStringProperty quantifyEvalCycle = new SimpleStringProperty();
    private final SimpleStringProperty riskAnalyzeCycle = new SimpleStringProperty();
    private final SimpleStringProperty evalConclusionCycle = new SimpleStringProperty();
    private final SimpleStringProperty secretReportCycle = new SimpleStringProperty();

    public String getSystemId() {
        return systemId.get();
    }

    public SimpleStringProperty systemIdProperty() {
        return systemId;
    }

    public void setSystemId(String systemId) {
        this.systemId.set(systemId);
    }

    public LocalDate getPreparationStartDate() {
        return preparationStartDate.get();
    }

    public SimpleObjectProperty<LocalDate> preparationStartDateProperty() {
        return preparationStartDate;
    }

    public void setPreparationStartDate(LocalDate preparationStartDate) {
        this.preparationStartDate.set(preparationStartDate);
    }

    public LocalDate getPreparationEndDate() {
        return preparationEndDate.get();
    }

    public SimpleObjectProperty<LocalDate> preparationEndDateProperty() {
        return preparationEndDate;
    }

    public void setPreparationEndDate(LocalDate preparationEndDate) {
        this.preparationEndDate.set(preparationEndDate);
    }

    public LocalDate getCompilationStartDate() {
        return compilationStartDate.get();
    }

    public SimpleObjectProperty<LocalDate> compilationStartDateProperty() {
        return compilationStartDate;
    }

    public void setCompilationStartDate(LocalDate compilationStartDate) {
        this.compilationStartDate.set(compilationStartDate);
    }

    public LocalDate getCompilationEndDate() {
        return compilationEndDate.get();
    }

    public SimpleObjectProperty<LocalDate> compilationEndDateProperty() {
        return compilationEndDate;
    }

    public void setCompilationEndDate(LocalDate compilationEndDate) {
        this.compilationEndDate.set(compilationEndDate);
    }

    public LocalDate getEvaluationStartDate() {
        return evaluationStartDate.get();
    }

    public SimpleObjectProperty<LocalDate> evaluationStartDateProperty() {
        return evaluationStartDate;
    }

    public void setEvaluationStartDate(LocalDate evaluationStartDate) {
        this.evaluationStartDate.set(evaluationStartDate);
    }

    public LocalDate getEvaluationEndDate() {
        return evaluationEndDate.get();
    }

    public SimpleObjectProperty<LocalDate> evaluationEndDateProperty() {
        return evaluationEndDate;
    }

    public void setEvaluationEndDate(LocalDate evaluationEndDate) {
        this.evaluationEndDate.set(evaluationEndDate);
    }

    public LocalDate getAnalysisStartDate() {
        return analysisStartDate.get();
    }

    public SimpleObjectProperty<LocalDate> analysisStartDateProperty() {
        return analysisStartDate;
    }

    public void setAnalysisStartDate(LocalDate analysisStartDate) {
        this.analysisStartDate.set(analysisStartDate);
    }

    public LocalDate getAnalysisEndDate() {
        return analysisEndDate.get();
    }

    public SimpleObjectProperty<LocalDate> analysisEndDateProperty() {
        return analysisEndDate;
    }

    public void setAnalysisEndDate(LocalDate analysisEndDate) {
        this.analysisEndDate.set(analysisEndDate);
    }

    public String getProjectStart() {
        return projectStart.get();
    }

    public SimpleStringProperty projectStartProperty() {
        return projectStart;
    }

    public void setProjectStart(String projectStart) {
        this.projectStart.set(projectStart);
    }

    public String getCollectAnalyze() {
        return collectAnalyze.get();
    }

    public SimpleStringProperty collectAnalyzeProperty() {
        return collectAnalyze;
    }

    public void setCollectAnalyze(String collectAnalyze) {
        this.collectAnalyze.set(collectAnalyze);
    }

    public String getToolPrepare() {
        return toolPrepare.get();
    }

    public SimpleStringProperty toolPrepareProperty() {
        return toolPrepare;
    }

    public void setToolPrepare(String toolPrepare) {
        this.toolPrepare.set(toolPrepare);
    }

    public String getProjectStartCycle() {
        return projectStartCycle.get();
    }

    public SimpleStringProperty projectStartCycleProperty() {
        return projectStartCycle;
    }

    public void setProjectStartCycle(String projectStartCycle) {
        this.projectStartCycle.set(projectStartCycle);
    }

    public String getCollectAnalyzeCycle() {
        return collectAnalyzeCycle.get();
    }

    public SimpleStringProperty collectAnalyzeCycleProperty() {
        return collectAnalyzeCycle;
    }

    public void setCollectAnalyzeCycle(String collectAnalyzeCycle) {
        this.collectAnalyzeCycle.set(collectAnalyzeCycle);
    }

    public String getToolPrepareCycle() {
        return toolPrepareCycle.get();
    }

    public SimpleStringProperty toolPrepareCycleProperty() {
        return toolPrepareCycle;
    }

    public void setToolPrepareCycle(String toolPrepareCycle) {
        this.toolPrepareCycle.set(toolPrepareCycle);
    }

    public String getAssetDefine() {
        return assetDefine.get();
    }

    public SimpleStringProperty assetDefineProperty() {
        return assetDefine;
    }

    public void setAssetDefine(String assetDefine) {
        this.assetDefine.set(assetDefine);
    }

    public String getTargetDefine() {
        return targetDefine.get();
    }

    public SimpleStringProperty targetDefineProperty() {
        return targetDefine;
    }

    public void setTargetDefine(String targetDefine) {
        this.targetDefine.set(targetDefine);
    }

    public String getContentDefine() {
        return contentDefine.get();
    }

    public SimpleStringProperty contentDefineProperty() {
        return contentDefine;
    }

    public void setContentDefine(String contentDefine) {
        this.contentDefine.set(contentDefine);
    }

    public String getSchemeMake() {
        return schemeMake.get();
    }

    public SimpleStringProperty schemeMakeProperty() {
        return schemeMake;
    }

    public void setSchemeMake(String schemeMake) {
        this.schemeMake.set(schemeMake);
    }

    public String getAssetDefineCycle() {
        return assetDefineCycle.get();
    }

    public SimpleStringProperty assetDefineCycleProperty() {
        return assetDefineCycle;
    }

    public void setAssetDefineCycle(String assetDefineCycle) {
        this.assetDefineCycle.set(assetDefineCycle);
    }

    public String getTargetDefineCycle() {
        return targetDefineCycle.get();
    }

    public SimpleStringProperty targetDefineCycleProperty() {
        return targetDefineCycle;
    }

    public void setTargetDefineCycle(String targetDefineCycle) {
        this.targetDefineCycle.set(targetDefineCycle);
    }

    public String getContentDefineCycle() {
        return contentDefineCycle.get();
    }

    public SimpleStringProperty contentDefineCycleProperty() {
        return contentDefineCycle;
    }

    public void setContentDefineCycle(String contentDefineCycle) {
        this.contentDefineCycle.set(contentDefineCycle);
    }

    public String getSchemeMakeCycle() {
        return schemeMakeCycle.get();
    }

    public SimpleStringProperty schemeMakeCycleProperty() {
        return schemeMakeCycle;
    }

    public void setSchemeMakeCycle(String schemeMakeCycle) {
        this.schemeMakeCycle.set(schemeMakeCycle);
    }

    public String getImplementPrepare() {
        return implementPrepare.get();
    }

    public SimpleStringProperty implementPrepareProperty() {
        return implementPrepare;
    }

    public void setImplementPrepare(String implementPrepare) {
        this.implementPrepare.set(implementPrepare);
    }

    public String getSceneRecord() {
        return sceneRecord.get();
    }

    public SimpleStringProperty sceneRecordProperty() {
        return sceneRecord;
    }

    public void setSceneRecord(String sceneRecord) {
        this.sceneRecord.set(sceneRecord);
    }

    public String getResultDefine() {
        return resultDefine.get();
    }

    public SimpleStringProperty resultDefineProperty() {
        return resultDefine;
    }

    public void setResultDefine(String resultDefine) {
        this.resultDefine.set(resultDefine);
    }

    public String getImplementPrepareCycle() {
        return implementPrepareCycle.get();
    }

    public SimpleStringProperty implementPrepareCycleProperty() {
        return implementPrepareCycle;
    }

    public void setImplementPrepareCycle(String implementPrepareCycle) {
        this.implementPrepareCycle.set(implementPrepareCycle);
    }

    public String getSceneRecordCycle() {
        return sceneRecordCycle.get();
    }

    public SimpleStringProperty sceneRecordCycleProperty() {
        return sceneRecordCycle;
    }

    public void setSceneRecordCycle(String sceneRecordCycle) {
        this.sceneRecordCycle.set(sceneRecordCycle);
    }

    public String getResultDefineCycle() {
        return resultDefineCycle.get();
    }

    public SimpleStringProperty resultDefineCycleProperty() {
        return resultDefineCycle;
    }

    public void setResultDefineCycle(String resultDefineCycle) {
        this.resultDefineCycle.set(resultDefineCycle);
    }

    public String getCheckPointDefine() {
        return checkPointDefine.get();
    }

    public SimpleStringProperty checkPointDefineProperty() {
        return checkPointDefine;
    }

    public void setCheckPointDefine(String checkPointDefine) {
        this.checkPointDefine.set(checkPointDefine);
    }

    public String getCheckPointCycle() {
        return checkPointCycle.get();
    }

    public SimpleStringProperty checkPointCycleProperty() {
        return checkPointCycle;
    }

    public void setCheckPointCycle(String checkPointCycle) {
        this.checkPointCycle.set(checkPointCycle);
    }

    public String getUnitEval() {
        return unitEval.get();
    }

    public SimpleStringProperty unitEvalProperty() {
        return unitEval;
    }

    public void setUnitEval(String unitEval) {
        this.unitEval.set(unitEval);
    }

    public String getOverallEval() {
        return overallEval.get();
    }

    public SimpleStringProperty overallEvalProperty() {
        return overallEval;
    }

    public void setOverallEval(String overallEval) {
        this.overallEval.set(overallEval);
    }

    public String getQuantifyEval() {
        return quantifyEval.get();
    }

    public SimpleStringProperty quantifyEvalProperty() {
        return quantifyEval;
    }

    public void setQuantifyEval(String quantifyEval) {
        this.quantifyEval.set(quantifyEval);
    }

    public String getRiskAnalyze() {
        return riskAnalyze.get();
    }

    public SimpleStringProperty riskAnalyzeProperty() {
        return riskAnalyze;
    }

    public void setRiskAnalyze(String riskAnalyze) {
        this.riskAnalyze.set(riskAnalyze);
    }

    public String getEvalConclusion() {
        return evalConclusion.get();
    }

    public SimpleStringProperty evalConclusionProperty() {
        return evalConclusion;
    }

    public void setEvalConclusion(String evalConclusion) {
        this.evalConclusion.set(evalConclusion);
    }

    public String getSecretReport() {
        return secretReport.get();
    }

    public SimpleStringProperty secretReportProperty() {
        return secretReport;
    }

    public void setSecretReport(String secretReport) {
        this.secretReport.set(secretReport);
    }

    public String getUnitEvalCycle() {
        return unitEvalCycle.get();
    }

    public SimpleStringProperty unitEvalCycleProperty() {
        return unitEvalCycle;
    }

    public void setUnitEvalCycle(String unitEvalCycle) {
        this.unitEvalCycle.set(unitEvalCycle);
    }

    public String getOverallEvalCycle() {
        return overallEvalCycle.get();
    }

    public SimpleStringProperty overallEvalCycleProperty() {
        return overallEvalCycle;
    }

    public void setOverallEvalCycle(String overallEvalCycle) {
        this.overallEvalCycle.set(overallEvalCycle);
    }

    public String getQuantifyEvalCycle() {
        return quantifyEvalCycle.get();
    }

    public SimpleStringProperty quantifyEvalCycleProperty() {
        return quantifyEvalCycle;
    }

    public void setQuantifyEvalCycle(String quantifyEvalCycle) {
        this.quantifyEvalCycle.set(quantifyEvalCycle);
    }

    public String getRiskAnalyzeCycle() {
        return riskAnalyzeCycle.get();
    }

    public SimpleStringProperty riskAnalyzeCycleProperty() {
        return riskAnalyzeCycle;
    }

    public void setRiskAnalyzeCycle(String riskAnalyzeCycle) {
        this.riskAnalyzeCycle.set(riskAnalyzeCycle);
    }

    public String getEvalConclusionCycle() {
        return evalConclusionCycle.get();
    }

    public SimpleStringProperty evalConclusionCycleProperty() {
        return evalConclusionCycle;
    }

    public void setEvalConclusionCycle(String evalConclusionCycle) {
        this.evalConclusionCycle.set(evalConclusionCycle);
    }

    public String getSecretReportCycle() {
        return secretReportCycle.get();
    }

    public SimpleStringProperty secretReportCycleProperty() {
        return secretReportCycle;
    }

    public void setSecretReportCycle(String secretReportCycle) {
        this.secretReportCycle.set(secretReportCycle);
    }
}